home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / CIncludes / Displays.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-06  |  23.2 KB  |  504 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Displays.h
  3.  
  4.      Contains:    Display Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. */
  19.  
  20. #ifndef __DISPLAYS__
  21. #define __DISPLAYS__
  22.  
  23.  
  24. #ifndef __CONDITIONALMACROS__
  25. #include <ConditionalMacros.h>
  26. #endif
  27.  
  28. #ifndef __COMPONENTS__
  29. #include <Components.h>
  30. #endif
  31. /*    #include <Types.h>                                            */
  32. /*    #include <MixedMode.h>                                        */
  33.  
  34. #ifndef __VIDEO__
  35. #include <Video.h>
  36. #endif
  37. /*    #include <Quickdraw.h>                                        */
  38. /*        #include <QuickdrawText.h>                                */
  39.  
  40. #ifndef __APPLEEVENTS__
  41. #include <AppleEvents.h>
  42. #endif
  43. /*    #include <Errors.h>                                            */
  44. /*    #include <Memory.h>                                            */
  45. /*    #include <OSUtils.h>                                        */
  46. /*    #include <Events.h>                                            */
  47. /*    #include <EPPC.h>                                            */
  48. /*        #include <AppleTalk.h>                                    */
  49. /*        #include <Files.h>                                        */
  50. /*            #include <Finder.h>                                    */
  51. /*        #include <PPCToolbox.h>                                    */
  52. /*        #include <Processes.h>                                    */
  53. /*    #include <Notification.h>                                    */
  54.  
  55. #ifndef __WINDOWS__
  56. #include <Windows.h>
  57. #endif
  58. /*    #include <Controls.h>                                        */
  59. /*        #include <Menus.h>                                        */
  60.  
  61. #ifndef __EVENTS__
  62. #include <Events.h>
  63. #endif
  64.  
  65. #ifndef __PROCESSES__
  66. #include <Processes.h>
  67. #endif
  68.  
  69. #ifndef __DIALOGS__
  70. #include <Dialogs.h>
  71. #endif
  72. /*    #include <TextEdit.h>                                        */
  73.  
  74. #ifdef __cplusplus
  75. extern "C" {
  76. #endif
  77.  
  78. #if PRAGMA_ALIGN_SUPPORTED
  79. #pragma options align=mac68k
  80. #endif
  81.  
  82. #if PRAGMA_IMPORT_SUPPORTED
  83. #pragma import on
  84. #endif
  85.  
  86.  
  87. enum {
  88. /* AppleEvents Core Suite */
  89.     kAESystemConfigNotice        = 'cnfg',
  90. /* Core Suite types */
  91.     kAEDisplayNotice            = 'dspl',
  92.     kAEDisplaySummary            = 'dsum',
  93.     keyDMConfigVersion            = 'dmcv',
  94.     keyDMConfigFlags            = 'dmcf',
  95.     keyDMConfigReserved            = 'dmcr',
  96.     keyDisplayID                = 'dmid',
  97.     keyDisplayComponent            = 'dmdc',
  98.     keyDisplayDevice            = 'dmdd',
  99.     keyDisplayFlags                = 'dmdf',
  100.     keyDisplayMode                = 'dmdm',
  101.     keyDisplayModeReserved        = 'dmmr',
  102.     keyDisplayReserved            = 'dmdr',
  103.     keyDisplayMirroredId        = 'dmmi',
  104.     keyDeviceFlags                = 'dddf',
  105.     keyDeviceDepthMode            = 'dddm',
  106.     keyDeviceRect                = 'dddr',
  107.     keyPixMapRect                = 'dpdr',
  108.     keyPixMapHResolution        = 'dphr',
  109.     keyPixMapVResolution        = 'dpvr',
  110.     keyPixMapPixelType            = 'dppt',
  111.     keyPixMapPixelSize            = 'dpps',
  112.     keyPixMapCmpCount            = 'dpcc',
  113.     keyPixMapCmpSize            = 'dpcs',
  114.     keyPixMapAlignment            = 'dppa',
  115.     keyPixMapResReserved        = 'dprr',
  116.     keyPixMapReserved            = 'dppr',
  117.     keyPixMapColorTableSeed        = 'dpct',
  118.     keySummaryMenubar            = 'dsmb',
  119.     keySummaryChanges            = 'dsch',
  120.     keyDisplayOldConfig            = 'dold',
  121.     keyDisplayNewConfig            = 'dnew'
  122. };
  123.  
  124. enum {
  125.     dmOnlyActiveDisplays        = true,
  126.     dmAllDisplays                = false
  127. };
  128.  
  129. enum {
  130. /* Switch Flags */
  131.     kNoSwitchConfirmBit            = 0,                            /* Flag indicating that there is no need to confirm a switch to this mode */
  132.     kDepthNotAvailableBit,                                        /* Current depth not available in new mode */
  133.     kShowModeBit                = 3,                            /* Show this mode even though it requires a confirm. */
  134.     kModeNotResizeBit            = 4                                /* Do not use this mode to resize display (for cards that mode drives a different connector). */
  135. };
  136.  
  137. enum {
  138. /*    Summary Change Flags (sticky bits indicating an operation was performed)
  139.     For example, moving a display then moving it back will still set the kMovedDisplayBit.
  140. */
  141.     kBeginEndConfigureBit        = 0,
  142.     kMovedDisplayBit,
  143.     kSetMainDisplayBit,
  144.     kSetDisplayModeBit,
  145.     kAddDisplayBit,
  146.     kRemoveDisplayBit,
  147.     kNewDisplayBit,
  148.     kDisposeDisplayBit,
  149.     kEnabledDisplayBit,
  150.     kDisabledDisplayBit,
  151.     kMirrorDisplayBit,
  152.     kUnMirrorDisplayBit
  153. };
  154.  
  155. enum {
  156. /* Notification Messages for extended call back routines */
  157.     kDMNotifyInstalled            = 1,                            /* At install time */
  158.     kDMNotifyEvent                = 2,                            /* Post change time */
  159.     kDMNotifyRemoved            = 3,                            /* At remove time */
  160.     kDMNotifyPrep                = 4,                            /* Pre change time */
  161.     kDMNotifyExtendEvent        = 5,                            /* Allow registrees to extend apple event before it is sent */
  162.     kDMNotifyDependents            = 6,                            /* Minor notification check without full update */
  163. /* Notification Flags */
  164.     kExtendedNotificationProc    = (1L << 16)
  165. };
  166.  
  167. /* types for notifyType */
  168. enum {
  169.     kFullNotify,                                                /* This is the appleevent whole nine yards notify */
  170.     kFullDependencyNotify                                        /* Only sends to those who want to know about interrelated functionality (used for updating UI) */
  171. };
  172.  
  173. /* DisplayID/DeviceID constants */
  174. enum {
  175.     kDummyDeviceID                = 0x0FF,                        /* This is the ID of the dummy display, used when the last “real” display is disabled.*/
  176.     kInvalidDisplayID            = 0x000,                        /* This is the invalid ID*/
  177.     kFirstDisplayID                = 0x100
  178. };
  179.  
  180. enum {
  181. /* bits for panelListFlags */
  182.     kAllowDuplicatesBit            = 0
  183. };
  184.  
  185. /* Constants for fidelity checks */
  186. enum {
  187.     kNoFidelity                    = 0,
  188.     kMinimumFidelity            = 1,
  189.     kDefaultFidelity            = 500,                            /* I'm just picking a number for Apple default panels and engines*/
  190.     kDefaultManufacturerFidelity = 1000                            /* I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)*/
  191. };
  192.  
  193. enum {
  194.     kAnyPanelType                = 0,                            /* Pass to DMNewEngineList for list of all panels (as opposed to specific types)*/
  195.     kAnyEngineType                = 0,                            /* Pass to DMNewEngineList for list of all engines*/
  196.     kAnyDeviceType                = 0,                            /* Pass to DMNewDeviceList for list of all devices*/
  197.     kAnyPortType                = 0                                /* Pass to DMNewDevicePortList for list of all devices*/
  198. };
  199.  
  200. /* portListFlags for DM_NewDevicePortList */
  201. enum {
  202. /* Should offline devices be put into the port list (such as dummy display) */
  203.     kPLIncludeOfflineDevicesBit    = 0
  204. };
  205.  
  206. typedef unsigned long DMFidelityType;
  207.  
  208. /* AVID is an ID for ports and devices the old DisplayID type
  209.     is carried on for compatibility
  210. */
  211. typedef unsigned long AVIDType;
  212.  
  213. typedef AVIDType DisplayIDType;
  214.  
  215. typedef void *DMListType;
  216.  
  217. typedef unsigned long DMListIndexType;
  218.  
  219. typedef void *AVPowerStatePtr;
  220.  
  221. struct DMComponentListEntryRec {
  222.     DisplayIDType                    itemID;                        /* DisplayID Manager*/
  223.     Component                        itemComponent;                /* Component Manager*/
  224.     ComponentDescription            itemDescription;            /* We can always construct this if we use something beyond the compontent mgr.*/
  225.     ResType                            itemClass;                    /* Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)*/
  226.     DMFidelityType                    itemFidelity;                /* How good is this item for the specified search?*/
  227.     ResType                            itemSubClass;                /* Subclass of group to put this panel.  Can use to do sub-grouping (eg volume for volume panel and mute panel)*/
  228.     Point                            itemSort;                    /* Set to 0 - future to sort the items in a sub group.*/
  229.     unsigned long                    itemFlags;                    /* Set to 0 (future expansion)*/
  230.     ResType                            itemReserved;                /* What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)*/
  231.     unsigned long                    itemFuture1;                /* Set to 0 (future expansion - probably an alternate code style)*/
  232.     unsigned long                    itemFuture2;                /* Set to 0 (future expansion - probably an alternate code style)*/
  233.     unsigned long                    itemFuture3;                /* Set to 0 (future expansion - probably an alternate code style)*/
  234.     unsigned long                    itemFuture4;                /* Set to 0 (future expansion - probably an alternate code style)*/
  235. };
  236. typedef struct DMComponentListEntryRec DMComponentListEntryRec;
  237.  
  238. typedef DMComponentListEntryRec *DMComponentListEntryPtr;
  239.  
  240. /* ••• Move AVLocationRec to AVComponents.i AFTER AVComponents.i is created*/
  241. struct AVLocationRec {
  242.     unsigned long                    locationConstant;            /* Set to 0 (future expansion - probably an alternate code style)*/
  243. };
  244. typedef struct AVLocationRec AVLocationRec;
  245.  
  246. typedef AVLocationRec *AVLocationPtr;
  247.  
  248. struct DMDepthInfoRec {
  249.     VDSwitchInfoPtr                    depthSwitchInfo;            /* This is the switch mode to choose this timing/depth */
  250.     VPBlockPtr                        depthVPBlock;                /* VPBlock (including size, depth and format) */
  251.     unsigned long                    depthFlags;                    /* Reserved */
  252.     unsigned long                    depthReserved1;                /* Reserved */
  253.     unsigned long                    depthReserved2;                /* Reserved */
  254. };
  255. typedef struct DMDepthInfoRec DMDepthInfoRec;
  256.  
  257. typedef DMDepthInfoRec *DMDepthInfoPtr;
  258.  
  259. struct DMDepthInfoBlockRec {
  260.     unsigned long                    depthBlockCount;            /* How many depths are there? */
  261.     DMDepthInfoPtr                    depthVPBlock;                /* Array of DMDepthInfoRec */
  262.     unsigned long                    depthBlockFlags;            /* Reserved */
  263.     unsigned long                    depthBlockReserved1;        /* Reserved */
  264.     unsigned long                    depthBlockReserved2;        /* Reserved */
  265. };
  266. typedef struct DMDepthInfoBlockRec DMDepthInfoBlockRec;
  267.  
  268. typedef DMDepthInfoBlockRec *DMDepthInfoBlockPtr;
  269.  
  270. struct DMDisplayModeListEntryRec {
  271.     unsigned long                    displayModeFlags;
  272.     VDSwitchInfoPtr                    displayModeSwitchInfo;
  273.     Ptr                                displayModeResolutionInfo;
  274.     VDTimingInfoPtr                    displayModeTimingInfo;
  275.     DMDepthInfoBlockPtr                displayModeDepthBlockInfo;    /* Information about all the depths*/
  276.     Ptr                                displayModeReserved;        /* Reserved*/
  277.     Str255                            *displayModeName;            /* Name of the timing mode*/
  278. };
  279. typedef struct DMDisplayModeListEntryRec DMDisplayModeListEntryRec;
  280.  
  281. typedef DMDisplayModeListEntryRec *DMDisplayModeListEntryPtr;
  282.  
  283. struct DependentNotifyRec {
  284.     ResType                            notifyType;                    /* What type was the engine that made the change (may be zero)*/
  285.     ResType                            notifyClass;                /* What class was the change (eg geometry, color etc)*/
  286.     DisplayIDType                    notifyPortID;                /* Which device was touched (kInvalidDisplayID -> all or none)*/
  287.     ComponentInstance                notifyComponent;            /* What engine did it (may be 0)?*/
  288.     unsigned long                    notifyVersion;                /* Set to 0 (future expansion)*/
  289.     unsigned long                    notifyFlags;                /* Set to 0 (future expansion)*/
  290.     unsigned long                    notifyReserved;                /* Set to 0 (future expansion)*/
  291.     unsigned long                    notifyFuture;                /* Set to 0 (future expansion)*/
  292. };
  293. typedef struct DependentNotifyRec DependentNotifyRec;
  294.  
  295. typedef DependentNotifyRec *DependentNotifyPtr;
  296.  
  297. /* Exports to support Interfaces library containing unused calls */
  298. typedef pascal void (*DMNotificationProcPtr)(AppleEvent *theEvent);
  299. typedef pascal void (*DMExtendedNotificationProcPtr)(void *userData, short theMessage, void *notifyData);
  300. typedef pascal void (*DMComponentListIteratorProcPtr)(void *userData, DMListIndexType itemIndex, DMComponentListEntryPtr componentInfo);
  301. typedef pascal void (*DMDisplayModeListIteratorProcPtr)(void *userData, DMListIndexType itemIndex, DMDisplayModeListEntryPtr displaymodeInfo);
  302.  
  303. #if GENERATINGCFM
  304. typedef UniversalProcPtr DMNotificationUPP;
  305. typedef UniversalProcPtr DMExtendedNotificationUPP;
  306. typedef UniversalProcPtr DMComponentListIteratorUPP;
  307. typedef UniversalProcPtr DMDisplayModeListIteratorUPP;
  308. #else
  309. typedef DMNotificationProcPtr DMNotificationUPP;
  310. typedef DMExtendedNotificationProcPtr DMExtendedNotificationUPP;
  311. typedef DMComponentListIteratorProcPtr DMComponentListIteratorUPP;
  312. typedef DMDisplayModeListIteratorProcPtr DMDisplayModeListIteratorUPP;
  313. #endif
  314.  
  315. enum {
  316.     uppDMNotificationProcInfo = kPascalStackBased
  317.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(AppleEvent*))),
  318.     uppDMExtendedNotificationProcInfo = kPascalStackBased
  319.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  320.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  321.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*))),
  322.     uppDMComponentListIteratorProcInfo = kPascalStackBased
  323.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  324.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(DMListIndexType)))
  325.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(DMComponentListEntryPtr))),
  326.     uppDMDisplayModeListIteratorProcInfo = kPascalStackBased
  327.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  328.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(DMListIndexType)))
  329.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(DMDisplayModeListEntryPtr)))
  330. };
  331.  
  332. #if GENERATINGCFM
  333. #define NewDMNotificationProc(userRoutine)        \
  334.         (DMNotificationUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMNotificationProcInfo, GetCurrentArchitecture())
  335. #define NewDMExtendedNotificationProc(userRoutine)        \
  336.         (DMExtendedNotificationUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, GetCurrentArchitecture())
  337. #define NewDMComponentListIteratorProc(userRoutine)        \
  338.         (DMComponentListIteratorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, GetCurrentArchitecture())
  339. #define NewDMDisplayModeListIteratorProc(userRoutine)        \
  340.         (DMDisplayModeListIteratorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, GetCurrentArchitecture())
  341. #else
  342. #define NewDMNotificationProc(userRoutine)        \
  343.         ((DMNotificationUPP) (userRoutine))
  344. #define NewDMExtendedNotificationProc(userRoutine)        \
  345.         ((DMExtendedNotificationUPP) (userRoutine))
  346. #define NewDMComponentListIteratorProc(userRoutine)        \
  347.         ((DMComponentListIteratorUPP) (userRoutine))
  348. #define NewDMDisplayModeListIteratorProc(userRoutine)        \
  349.         ((DMDisplayModeListIteratorUPP) (userRoutine))
  350. #endif
  351.  
  352. #if GENERATINGCFM
  353. #define CallDMNotificationProc(userRoutine, theEvent)        \
  354.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMNotificationProcInfo, (theEvent))
  355. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)        \
  356.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, (userData), (theMessage), (notifyData))
  357. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)        \
  358.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, (userData), (itemIndex), (componentInfo))
  359. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)        \
  360.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, (userData), (itemIndex), (displaymodeInfo))
  361. #else
  362. #define CallDMNotificationProc(userRoutine, theEvent)        \
  363.         (*(userRoutine))((theEvent))
  364. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)        \
  365.         (*(userRoutine))((userData), (theMessage), (notifyData))
  366. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)        \
  367.         (*(userRoutine))((userData), (itemIndex), (componentInfo))
  368. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)        \
  369.         (*(userRoutine))((userData), (itemIndex), (displaymodeInfo))
  370. #endif
  371.  
  372. extern pascal GDHandle DMGetFirstScreenDevice(Boolean activeOnly)
  373.  TWOWORDINLINE(0x7000, 0xABEB);
  374. extern pascal GDHandle DMGetNextScreenDevice(GDHandle theDevice, Boolean activeOnly)
  375.  TWOWORDINLINE(0x7001, 0xABEB);
  376. extern pascal void DMDrawDesktopRect(Rect *globalRect)
  377.  TWOWORDINLINE(0x7002, 0xABEB);
  378. extern pascal void DMDrawDesktopRegion(RgnHandle globalRgn)
  379.  TWOWORDINLINE(0x7003, 0xABEB);
  380. extern pascal OSErr DMBeginConfigureDisplays(Handle *displayState)
  381.  THREEWORDINLINE(0x303C, 0x0206, 0xABEB);
  382. extern pascal OSErr DMEndConfigureDisplays(Handle displayState)
  383.  THREEWORDINLINE(0x303C, 0x0207, 0xABEB);
  384. extern pascal OSErr DMAddDisplay(GDHandle newDevice, short driver, unsigned long mode, unsigned long reserved, unsigned long displayID, Component displayComponent, Handle displayState)
  385.  THREEWORDINLINE(0x303C, 0x0D08, 0xABEB);
  386. extern pascal OSErr DMMoveDisplay(GDHandle moveDevice, short x, short y, Handle displayState)
  387.  THREEWORDINLINE(0x303C, 0x0609, 0xABEB);
  388. extern pascal OSErr DMDisableDisplay(GDHandle disableDevice, Handle displayState)
  389.  THREEWORDINLINE(0x303C, 0x040A, 0xABEB);
  390. extern pascal OSErr DMEnableDisplay(GDHandle enableDevice, Handle displayState)
  391.  THREEWORDINLINE(0x303C, 0x040B, 0xABEB);
  392. extern pascal OSErr DMRemoveDisplay(GDHandle removeDevice, Handle displayState)
  393.  THREEWORDINLINE(0x303C, 0x040C, 0xABEB);
  394. extern pascal OSErr DMSetMainDisplay(GDHandle newMainDevice, Handle displayState)
  395.  THREEWORDINLINE(0x303C, 0x0410, 0xABEB);
  396. extern pascal OSErr DMSetDisplayMode(GDHandle theDevice, unsigned long mode, unsigned long *depthMode, unsigned long reserved, Handle displayState)
  397.  THREEWORDINLINE(0x303C, 0x0A11, 0xABEB);
  398. extern pascal OSErr DMCheckDisplayMode(GDHandle theDevice, unsigned long mode, unsigned long depthMode, unsigned long *switchFlags, unsigned long reserved, Boolean *modeOk)
  399.  THREEWORDINLINE(0x303C, 0x0C12, 0xABEB);
  400. extern pascal OSErr DMGetDeskRegion(RgnHandle *desktopRegion)
  401.  THREEWORDINLINE(0x303C, 0x0213, 0xABEB);
  402. extern pascal OSErr DMRegisterNotifyProc(DMNotificationUPP notificationProc, ProcessSerialNumberPtr whichPSN)
  403.  THREEWORDINLINE(0x303C, 0x0414, 0xABEB);
  404. extern pascal OSErr DMRemoveNotifyProc(DMNotificationUPP notificationProc, ProcessSerialNumberPtr whichPSN)
  405.  THREEWORDINLINE(0x303C, 0x0415, 0xABEB);
  406. extern pascal OSErr DMQDIsMirroringCapable(Boolean *qdIsMirroringCapable)
  407.  THREEWORDINLINE(0x303C, 0x0216, 0xABEB);
  408. extern pascal OSErr DMCanMirrorNow(Boolean *canMirrorNow)
  409.  THREEWORDINLINE(0x303C, 0x0217, 0xABEB);
  410. extern pascal OSErr DMIsMirroringOn(Boolean *isMirroringOn)
  411.  THREEWORDINLINE(0x303C, 0x0218, 0xABEB);
  412. extern pascal OSErr DMMirrorDevices(GDHandle gD1, GDHandle gD2, Handle displayState)
  413.  THREEWORDINLINE(0x303C, 0x0619, 0xABEB);
  414. extern pascal OSErr DMUnmirrorDevice(GDHandle gDevice, Handle displayState)
  415.  THREEWORDINLINE(0x303C, 0x041A, 0xABEB);
  416. extern pascal OSErr DMGetNextMirroredDevice(GDHandle gDevice, GDHandle *mirroredDevice)
  417.  THREEWORDINLINE(0x303C, 0x041B, 0xABEB);
  418. extern pascal OSErr DMBlockMirroring(void)
  419.  TWOWORDINLINE(0x701C, 0xABEB);
  420. extern pascal OSErr DMUnblockMirroring(void)
  421.  TWOWORDINLINE(0x701D, 0xABEB);
  422. extern pascal OSErr DMGetDisplayMgrA5World(Ptr *dmA5)
  423.  THREEWORDINLINE(0x303C, 0x021E, 0xABEB);
  424. extern pascal OSErr DMGetDisplayIDByGDevice(GDHandle displayDevice, DisplayIDType *displayID, Boolean failToMain)
  425.  THREEWORDINLINE(0x303C, 0x051F, 0xABEB);
  426. extern pascal OSErr DMGetGDeviceByDisplayID(DisplayIDType displayID, GDHandle *displayDevice, Boolean failToMain)
  427.  THREEWORDINLINE(0x303C, 0x0520, 0xABEB);
  428. extern pascal OSErr DMSetDisplayComponent(GDHandle theDevice, Component displayComponent)
  429.  THREEWORDINLINE(0x303C, 0x0421, 0xABEB);
  430. extern pascal OSErr DMGetDisplayComponent(GDHandle theDevice, Component *displayComponent)
  431.  THREEWORDINLINE(0x303C, 0x0422, 0xABEB);
  432. extern pascal OSErr DMNewDisplay(GDHandle *newDevice, short driverRefNum, unsigned long mode, unsigned long reserved, DisplayIDType displayID, Component displayComponent, Handle displayState)
  433.  THREEWORDINLINE(0x303C, 0x0D23, 0xABEB);
  434. extern pascal OSErr DMDisposeDisplay(GDHandle disposeDevice, Handle displayState)
  435.  THREEWORDINLINE(0x303C, 0x0424, 0xABEB);
  436. extern pascal OSErr DMResolveDisplayComponents(void)
  437.  TWOWORDINLINE(0x7025, 0xABEB);
  438. extern pascal OSErr DMRegisterExtendedNotifyProc(DMExtendedNotificationUPP notifyProc, void *notifyUserData, unsigned short nofifyOnFlags, ProcessSerialNumberPtr whichPSN)
  439.  THREEWORDINLINE(0x303C, 0x07EF, 0xABEB);
  440. extern pascal OSErr DMRemoveExtendedNotifyProc(DMExtendedNotificationUPP notifyProc, void *notifyUserData, ProcessSerialNumberPtr whichPSN, unsigned short removeFlags)
  441.  THREEWORDINLINE(0x303C, 0x0726, 0xABEB);
  442. extern pascal OSErr DMNewAVPanelList(DisplayIDType displayID, ResType panelType, DMFidelityType minimumFidelity, unsigned long panelListFlags, unsigned long reserved, DMListIndexType *thePanelCount, DMListType *thePanelList)
  443.  THREEWORDINLINE(0x303C, 0x0C27, 0xABEB);
  444. extern pascal OSErr DMNewAVEngineList(DisplayIDType displayID, ResType engineType, DMFidelityType minimumFidelity, unsigned long engineListFlags, unsigned long reserved, DMListIndexType *engineCount, DMListType *engineList)
  445.  THREEWORDINLINE(0x303C, 0x0C28, 0xABEB);
  446. extern pascal OSErr DMNewAVDeviceList(ResType deviceType, unsigned long deviceListFlags, unsigned long reserved, DMListIndexType *deviceCount, DMListType *deviceList)
  447.  THREEWORDINLINE(0x303C, 0x0A29, 0xABEB);
  448. extern pascal OSErr DMNewAVPortListByPortType(ResType subType, unsigned long portListFlags, unsigned long reserved, DMListIndexType *devicePortCount, DMListType *theDevicePortList)
  449.  THREEWORDINLINE(0x303C, 0x0A2A, 0xABEB);
  450. extern pascal OSErr DMGetIndexedComponentFromList(DMListType panelList, DMListIndexType itemIndex, unsigned long reserved, DMComponentListIteratorUPP listIterator, void *userData)
  451.  THREEWORDINLINE(0x303C, 0x0A2B, 0xABEB);
  452. extern pascal OSErr DMDisposeList(DMListType panelList)
  453.  THREEWORDINLINE(0x303C, 0x022C, 0xABEB);
  454. extern pascal OSErr DMGetNameByAVID(AVIDType theID, unsigned long nameFlags, Str255 *name)
  455.  THREEWORDINLINE(0x303C, 0x062D, 0xABEB);
  456. extern pascal OSErr DMNewAVIDByPortComponent(Component thePortComponent, ResType portKind, unsigned long reserved, AVIDType *newID)
  457.  THREEWORDINLINE(0x303C, 0x082E, 0xABEB);
  458. extern pascal OSErr DMGetPortComponentByAVID(DisplayIDType thePortID, Component *thePortComponent, ComponentDescription *theDesciption, ResType *thePortKind)
  459.  THREEWORDINLINE(0x303C, 0x082F, 0xABEB);
  460. extern pascal OSErr DMSendDependentNotification(ResType notifyType, ResType notifyClass, AVIDType displayID, ComponentInstance notifyComponent)
  461.  THREEWORDINLINE(0x303C, 0x0A30, 0xABEB);
  462. extern pascal OSErr DMDisposeAVComponent(Component theAVComponent)
  463.  THREEWORDINLINE(0x303C, 0x0231, 0xABEB);
  464. extern pascal OSErr DMSaveScreenPrefs(unsigned long reserved1, unsigned long saveFlags, unsigned long reserved2)
  465.  THREEWORDINLINE(0x303C, 0x0632, 0xABEB);
  466. extern pascal OSErr DMNewAVIDByDeviceComponent(Component theDeviceComponent, ResType portKind, unsigned long reserved, DisplayIDType *newID)
  467.  THREEWORDINLINE(0x303C, 0x0833, 0xABEB);
  468. extern pascal OSErr DMNewAVPortListByDeviceAVID(AVIDType theID, DMFidelityType minimumFidelity, unsigned long portListFlags, unsigned long reserved, DMListIndexType *devicePortCount, DMListType *theDevicePortList)
  469.  THREEWORDINLINE(0x303C, 0x0C34, 0xABEB);
  470. extern pascal OSErr DMGetDeviceComponentByAVID(AVIDType theDeviceID, Component *theDeviceComponent, ComponentDescription *theDesciption, ResType *theDeviceKind)
  471.  THREEWORDINLINE(0x303C, 0x0835, 0xABEB);
  472. extern pascal OSErr DMNewDisplayModeList(DisplayIDType displayID, unsigned long modeListFlags, unsigned long reserved, DMListIndexType *thePanelCount, DMListType *thePanelList)
  473.  THREEWORDINLINE(0x303C, 0x0A36, 0xABEB);
  474. extern pascal OSErr DMGetIndexedDisplayModeFromList(DMListType panelList, DMListIndexType itemIndex, unsigned long reserved, DMDisplayModeListIteratorUPP listIterator, void *userData)
  475.  THREEWORDINLINE(0x303C, 0x0A37, 0xABEB);
  476. extern pascal OSErr DMGetGraphicInfoByAVID(AVIDType theID, PicHandle *theAVPcit, Handle *theAVIconSuite, AVLocationRec *theAVLocation)
  477.  THREEWORDINLINE(0x303C, 0x0838, 0xABEB);
  478. extern pascal OSErr DMGetAVPowerState(AVIDType theID, AVPowerStatePtr getPowerState, unsigned long reserved1)
  479.  THREEWORDINLINE(0x303C, 0x0839, 0xABEB);
  480. extern pascal OSErr DMSetAVPowerState(AVIDType theID, AVPowerStatePtr setPowerState, unsigned long powerFlags, Handle displayState)
  481.  THREEWORDINLINE(0x303C, 0x083A, 0xABEB);
  482. extern pascal OSErr DMGetDeviceAVIDByPortAVID(AVIDType portAVID, AVIDType *deviceAVID)
  483.  THREEWORDINLINE(0x303C, 0x043B, 0xABEB);
  484. extern pascal OSErr DMGetEnableByAVID(AVIDType theAVID, Boolean *isAVIDEnabledNow, Boolean *canChangeEnableNow)
  485.  THREEWORDINLINE(0x303C, 0x063C, 0xABEB);
  486. extern pascal OSErr DMSetEnableByAVID(AVIDType theAVID, Boolean doEnable, Handle displayState)
  487.  THREEWORDINLINE(0x303C, 0x053D, 0xABEB);
  488. extern pascal OSErr DMGetDisplayMode(GDHandle theDevice, VDSwitchInfoPtr switchInfo)
  489.  THREEWORDINLINE(0x303C, 0x043E, 0xABEB);
  490.  
  491. #if PRAGMA_IMPORT_SUPPORTED
  492. #pragma import off
  493. #endif
  494.  
  495. #if PRAGMA_ALIGN_SUPPORTED
  496. #pragma options align=reset
  497. #endif
  498.  
  499. #ifdef __cplusplus
  500. }
  501. #endif
  502.  
  503. #endif /* __DISPLAYS__ */
  504.